import sys
N = int (2e5 + 5)
sys.setrecursionlimit (N)
def charming () :
n, k = map (int, input ().split ())
s = input (); pos = list ();
for i in range (len (s)) :
if s[i] == '*' : pos.append (i)
res = 0; last = pos[0]; i = 1
if len (pos) <= 1 : print (1); return
while True :
j = i
while j < len (pos) and pos[j] - last <= k : j += 1
if j == len (pos) : break
res += 1; i = j; last = pos[j - 1]
print (res + 2)
for t in range (int (input ())) : charming ()
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int t;
cin>>t;
for (;t --> 0;) {
int n,k;
cin>>n>>k;
string s;
cin>>s;
int last=-10000,prev=-10000,ans=0;
for (int i=0;i<n;i++) {
if (s[i]=='*') {
if (ans==0) {
last=prev=i;
++ans;
} else if (i-last>k) {
last=prev;
prev=i;
++ans;
} else
prev=i;
}
}
if (last!=prev)
++ans;
cout<<ans<<'\n';
}
return 0;
}
1476E - Pattern Matching | 1107A - Digits Sequence Dividing |
1348A - Phoenix and Balance | 1343B - Balanced Array |
1186A - Vus the Cossack and a Contest | 1494A - ABC String |
1606A - AB Balance | 1658C - Shinju and the Lost Permutation |
1547C - Pair Programming | 550A - Two Substrings |
797B - Odd sum | 1093A - Dice Rolling |
1360B - Honest Coach | 1399C - Boats Competition |
1609C - Complex Market Analysis | 1657E - Star MST |
1143B - Nirvana | 1285A - Mezo Playing Zoma |
919B - Perfect Number | 894A - QAQ |
1551A - Polycarp and Coins | 313A - Ilya and Bank Account |
1469A - Regular Bracket Sequence | 919C - Seat Arrangements |
1634A - Reverse and Concatenate | 1619C - Wrong Addition |
1437A - Marketing Scheme | 1473B - String LCM |
1374A - Required Remainder | 1265E - Beautiful Mirrors |